﻿//*******************************************************************/
//** 编 写 人：lardust-PC AFCodeAI
//** 编写日期：06/22/2013 04:47:03
//** 实现功能：
//** 修 改 人：
//** 修改日期：
//*******************************************************************/
using System.Collections.Generic;
using System.Data;
using CrazyTalk.Models;

namespace CrazyTalk.IDAL
{
    /// <summary>
    /// 接口层TagDAL
    /// </summary>
    public interface ITagDAL
    {
        /// <summary>
        /// 增加一条数据
        /// </summary>
        int Add(Tag model);
        /// <summary>
        /// 删除一条数据
        /// </summary>
        bool Delete(int tagId);
        bool DeleteList(List<int> idList);
        /// <summary>
        /// 更新一条数据
        /// </summary>
        bool Update(Tag model);
        /// <summary>
        /// 是否存在该记录
        /// </summary>
        bool Exists(int tagId);

        /// <summary>
        /// 获取指定标签名称对应的编号，如果不存在，则插入，并返回编号
        /// </summary>
        int GetTagId(string tag);
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        Tag GetModel(int tagId);
        /// <summary>
        /// 获取行记录的详细信息
        /// </summary>
        /// <returns></returns>
        DataTable GetDetails(int tagId);
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="queryField">查询条件的字段名称集合，字段格式：a.FieldName,>,参数名附加字符</param>
        /// <param name="queryValue">查询条件的值集合</param>
        /// <param name="orderby">排序列名</param>
        /// <param name="index">页码，从1开始</param>
        /// <param name="size">页记录数</param>
        /// <param name="totalCount">输出的总记录行数</param>
        /// <returns></returns>
        DataTable GetList(List<string> queryField, List<object> queryValue, string orderby, int index, int size, out int totalCount);
    }
}